.section .data

.global gdt_descriptor
.global CODE_SEG
.global DATA_SEG

gdt_start:
    .long 0
    .long 0

gdt_code:
    .word 0xffff # 段长度 0-15
    .word 0x0000 # 段基址 0-15
    .byte 0x00   # 段基址 16-23
    .byte 0b10011010   # 标识位
    .byte 0b11001111   # 标识位（4位，段长度的单位是4k页）段长度16-19
    .byte 0x00   # 段基址 24-31

gdt_data:
    .word 0xffff # 段长度 0-15
    .word 0x0000 # 段基址 0-15
    .byte 0x00   # 段基址 16-23
    .byte 0b10010010   # 标识位
    .byte 0b11001111   # 标识位（4位，段长度的单位是4k页）段长度16-19
    .byte 0x00   # 段基址 24-31

gdt_end:

gdt_descriptor:
    .word gdt_end - gdt_start
    .long gdt_start

# 代码段和数据段的偏移 用来设置段寄存器
.equ CODE_SEG, gdt_code - gdt_start
.equ DATA_SEG, gdt_data - gdt_start